#include "head.cuh"

void swap(float *x, float *y)
{
	float temp;
	temp = *x;
	*x = *y;
	*y = temp;
}

int choose_pivot(int i, int j)
{
	return((i + j) / 2);
}


void quicksort(float *a, int l, int h, bool isDesc){
	if (h < l + 2) return;
	int e = h, p = l;
	while (l < h) {
		if (isDesc){
			while (++l < e && a[l] >= a[p]);
			while (--h > p && a[h] <= a[p]);
		}
		else{
			while (++l < e && a[l] <= a[p]);
			while (--h > p && a[h] >= a[p]);
		}
		
		if (l < h) swap(&a[l], &a[h]);
	}
	swap(&a[h], &a[p]);
	quicksort(a, p, h);
	quicksort(a, l, e);
}